class OscRecommedProjectListEntity {
	int code;
	OscRecommedProjectListData data;
	String message;

	OscRecommedProjectListEntity({this.code, this.data, this.message});

	OscRecommedProjectListEntity.fromJson(Map<String, dynamic> json) {
		code = json['code'];
		data = json['data'] != null ? new OscRecommedProjectListData.fromJson(json['data']) : null;
		message = json['message'];
	}

	Map<String, dynamic> toJson() {
		final Map<String, dynamic> data = new Map<String, dynamic>();
		data['code'] = this.code;
		if (this.data != null) {
      data['data'] = this.data.toJson();
    }
		data['message'] = this.message;
		return data;
	}
}

class OscRecommedProjectListData {
	List<OscRecommedProjectListDataItem> items;
	int currentSize;

	OscRecommedProjectListData({this.items, this.currentSize});

	OscRecommedProjectListData.fromJson(Map<String, dynamic> json) {
		if (json['items'] != null) {
			items = new List<OscRecommedProjectListDataItem>();(json['items'] as List).forEach((v) { items.add(new OscRecommedProjectListDataItem.fromJson(v)); });
		}
		currentSize = json['currentSize'];
	}

	Map<String, dynamic> toJson() {
		final Map<String, dynamic> data = new Map<String, dynamic>();
		if (this.items != null) {
      data['items'] =  this.items.map((v) => v.toJson()).toList();
    }
		data['currentSize'] = this.currentSize;
		return data;
	}
}

class OscRecommedProjectListDataItem {
	OscRecommedProjectListDataItemsProject project;
	String id;
	String type;
	List<OscRecommedProjectListDataItemsAuthor> authors;

	OscRecommedProjectListDataItem({this.project, this.id, this.type, this.authors});

	OscRecommedProjectListDataItem.fromJson(Map<String, dynamic> json) {
		project = json['project'] != null ? new OscRecommedProjectListDataItemsProject.fromJson(json['project']) : null;
		id = json['id'];
		type = json['type'];
		if (json['authors'] != null) {
			authors = new List<OscRecommedProjectListDataItemsAuthor>();(json['authors'] as List).forEach((v) { authors.add(new OscRecommedProjectListDataItemsAuthor.fromJson(v)); });
		}
	}

	Map<String, dynamic> toJson() {
		final Map<String, dynamic> data = new Map<String, dynamic>();
		if (this.project != null) {
      data['project'] = this.project.toJson();
    }
		data['id'] = this.id;
		data['type'] = this.type;
		if (this.authors != null) {
      data['authors'] =  this.authors.map((v) => v.toJson()).toList();
    }
		return data;
	}
}

class OscRecommedProjectListDataItemsProject {
	int replyCount;
	String ident;
	String name;
	String logo;
	bool recommend;
	bool cn;
	int id;
	String title;
	int collectNumber;
	String desc;

	OscRecommedProjectListDataItemsProject({this.replyCount, this.ident, this.name, this.logo, this.recommend, this.cn, this.id, this.title, this.collectNumber, this.desc});

	OscRecommedProjectListDataItemsProject.fromJson(Map<String, dynamic> json) {
		replyCount = json['replyCount'];
		ident = json['ident'];
		name = json['name'];
		logo = json['logo'];
		recommend = json['recommend'];
		cn = json['cn'];
		id = json['id'];
		title = json['title'];
		collectNumber = json['collectNumber'];
		desc = json['desc'];
	}

	Map<String, dynamic> toJson() {
		final Map<String, dynamic> data = new Map<String, dynamic>();
		data['replyCount'] = this.replyCount;
		data['ident'] = this.ident;
		data['name'] = this.name;
		data['logo'] = this.logo;
		data['recommend'] = this.recommend;
		data['cn'] = this.cn;
		data['id'] = this.id;
		data['title'] = this.title;
		data['collectNumber'] = this.collectNumber;
		data['desc'] = this.desc;
		return data;
	}
}

class OscRecommedProjectListDataItemsAuthor {
	int projectCount;
	int followers;
	int followStatus;
	String name;
	String project;
	String portrait;
	int userID;

	OscRecommedProjectListDataItemsAuthor({this.projectCount, this.followers, this.followStatus, this.name, this.project, this.portrait, this.userID});

	OscRecommedProjectListDataItemsAuthor.fromJson(Map<String, dynamic> json) {
		projectCount = json['projectCount'];
		followers = json['followers'];
		followStatus = json['followStatus'];
		name = json['name'];
		project = json['project'];
		portrait = json['portrait'];
		userID = json['userID'];
	}

	Map<String, dynamic> toJson() {
		final Map<String, dynamic> data = new Map<String, dynamic>();
		data['projectCount'] = this.projectCount;
		data['followers'] = this.followers;
		data['followStatus'] = this.followStatus;
		data['name'] = this.name;
		data['project'] = this.project;
		data['portrait'] = this.portrait;
		data['userID'] = this.userID;
		return data;
	}
}
